package com.uzai.console.service.wechatwork;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.uzai.console.dto.wechatwork.wxq.wxgroup.AddManagerDto;
import com.uzai.console.dto.wechatwork.wxq.wxgroup.DelManagerDto;
import com.uzai.console.dto.wechatwork.wxq.wxgroupmenber.*;
import com.uzai.console.vo.wechatwork.wxq.wxgroupmember.WxWorkGroupMemberInfoVo;
import com.uzai.console.vo.wechatwork.wxq.wxgroupmember.WxWorkGroupMemberRelationVo;

/**
 * 微信群成员
 * @author liuqi
 * @date 2021年08月13日 11:33
 */
public interface WxWorkGroupMemberService {

    /**
     * 查询微信群成员列表
     *
     * @param wxWorkGroupMemberQuery
     * @return null
     * @author liuqi
     * @date 2021/8/13 11:38
     */
    Page<WxWorkGroupMemberInfoVo> findWxWorkGroupMemberList(WxWorkGroupMemberQuery wxWorkGroupMemberQuery, Boolean tuominFlag);

    /**
     * 踢出该群
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param wxWorkGroupMemberKickDto
     * @return null
     */
    void kickWxWorkGroupMember(WxWorkGroupMemberKickDto wxWorkGroupMemberKickDto);

    /**
     * 踢出该群
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param wxWorkGroupMemberKickDto
     * @return null
     */
    void kickWxWorkGroupMemberByMemberIdList(WxWorkGroupMemberKickDto wxWorkGroupMemberKickDto);


    /**
     * 添加好友
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param wxWorkGroupMemberIdDto
     * @return null
     */
    void addFriend(WxWorkGroupMemberIdDto wxWorkGroupMemberIdDto);

    /**
     * 加入黑名单
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param wxWorkGroupMemberBlacklistDto
     * @return null
     */
    void addBlacklist(WxWorkGroupMemberBlacklistDto wxWorkGroupMemberBlacklistDto);

    /**
     * 查询邀请关系
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param wxWorkGroupMemberIdDto
     * @return null
     */
    WxWorkGroupMemberRelationVo findInviteRelation(WxWorkGroupMemberIdDto wxWorkGroupMemberIdDto);

    /**
     * 加群黑名单
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param wxWorkGroupMemberGroupBlacklistDto
     * @return null
     */
    void addGrpupBlacklist(WxWorkGroupMemberGroupBlacklistDto wxWorkGroupMemberGroupBlacklistDto);

    /**
     * 设置群成员管理员
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param wxWorkGroupMemberSetAdminDto
     * @return null
     */
    void setAdmin(WxWorkGroupMemberSetAdminDto wxWorkGroupMemberSetAdminDto);

    void addManager(AddManagerDto addManagerDto);

    void delManager(DelManagerDto delManagerDto);
}
